16. 一维的车辆世界参考答案

练习 1 参考答案

def initialize_robot(grid_size):
    grid = [1/grid_size] * grid_size
    return grid    

另一个可选的解决方案,如下所示:

def initialize_robot(grid_size):

    grid = []

    for i in range(grid_size):
        grid.append(1/grid_size)

    return grid

练习 2 参考答案

def grid_probability(grid, position):

    if position < len(grid):
        return grid[position]

    return None

你可以检查,以确保位置变量是非负的。 但在 Python 中,负列表索引实际上是合法的。 grid [-1] 可以访问列表中的最后一个元素。 grid [-2] 可以让你访问倒数第二个元素,等等。

练习 3 参考答案

import matplotlib.pyplot as plt
import numpy as np

def output_map(grid):

    x_labels = range(len(grid))

    plt.bar(x_labels, grid)
    plt.xlabel('Grid Space')
    plt.ylabel('Probability')
    plt.title('Probability of the Robot Being at Each Space on the Grid')
    plt.show()

练习 4 参考答案

def update_probabilities(grid, updates):  

    for i in range(len(updates)):
        grid[updates[i][0]] = updates[i][1]

    return grid

另一个可选的解决方案,如下所示:

def update_probabilities(grid, updates):
    for update in updates:
        grid[update[0]] = update[1] 
    return grid

第三种可选的解决方案:

def update_probabilities(grid, updates):        
    for pos, prob in updates:
        grid[pos] = prob    
    return grid